﻿using System;
using System.ComponentModel;
using System.Runtime.InteropServices;
using Teigha.Core;

namespace Teigha.TD
{
	public class OdDbProxyEntity : OdDbEntity
	{
		[EditorBrowsable(EditorBrowsableState.Never)]
		public OdDbProxyEntity(IntPtr cPtr, bool cMemoryOwn) : base(TD_DbPINVOKE.OdDbProxyEntity_SWIGUpcast(cPtr), cMemoryOwn)
		{
			this.swigCPtr = new HandleRef(this, cPtr);
		}

		[EditorBrowsable(EditorBrowsableState.Never)]
		public static HandleRef getCPtr(OdDbProxyEntity obj)
		{
			if (obj != null)
			{
				return obj.swigCPtr;
			}
			return new HandleRef(null, IntPtr.Zero);
		}

		~OdDbProxyEntity()
		{
			this.Dispose();
		}

		public override void Dispose()
		{
			if (this.swigCPtr.Handle != IntPtr.Zero)
			{
				if (this.swigCMemOwn)
				{
					lock (this.locker)
					{
						if (this.swigCPtr.Handle != IntPtr.Zero && this.swigCMemOwn)
						{
							this.swigCMemOwn = false;
							TD_DbPINVOKE.delete_OdDbProxyEntity(this.swigCPtr);
						}
					}
					this.swigCMemOwn = false;
				}
				this.swigCPtr = new HandleRef(null, IntPtr.Zero);
			}
			GC.SuppressFinalize(this);
			base.Dispose();
		}

		public new static OdDbProxyEntity cast(OdRxObject pObj)
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = TD_DbPINVOKE.OdDbProxyEntity_cast(OdRxObject.getCPtr(pObj));
			OdDbProxyEntity result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject((OdDbProxyEntity)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = (OdDbProxyEntity)Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = (OdDbProxyEntity)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new static OdRxClass desc()
		{
			OdRxClass result = (OdRxClass)Teigha.Core.Helpers.odrxCreateObjectInternal(TD_DbPINVOKE.OdDbProxyEntity_desc(), false);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdRxClass isA()
		{
			OdRxClass result = (OdRxClass)Teigha.Core.Helpers.odrxCreateObjectInternal(TD_DbPINVOKE.OdDbProxyEntity_isA(this.swigCPtr), false);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdRxObject queryX(OdRxClass protocolClass)
		{
			OdRxObject result = Teigha.Core.Helpers.odrxCreateObjectInternal(TD_DbPINVOKE.OdDbProxyEntity_queryX(this.swigCPtr, OdRxClass.getCPtr(protocolClass)), false);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new static OdDbProxyEntity createObject()
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = TD_DbPINVOKE.OdDbProxyEntity_createObject();
			OdDbProxyEntity result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject((OdDbProxyEntity)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = (OdDbProxyEntity)Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = (OdDbProxyEntity)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdDbProxyEntity.GraphicsMetafileType graphicsMetafileType()
		{
			OdDbProxyEntity.GraphicsMetafileType result = (OdDbProxyEntity.GraphicsMetafileType)TD_DbPINVOKE.OdDbProxyEntity_graphicsMetafileType(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdDbObject subDeepClone(OdDbIdMapping ownerIdMap, OdDbObject arg1)
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = TD_DbPINVOKE.OdDbProxyEntity_subDeepClone(this.swigCPtr, OdDbIdMapping.getCPtr(ownerIdMap), OdDbObject.getCPtr(arg1));
			OdDbObject result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject((OdDbObject)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = (OdDbObject)Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = (OdDbObject)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdDbObject subWblockClone(OdDbIdMapping ownerIdMap, OdDbObject arg1)
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = TD_DbPINVOKE.OdDbProxyEntity_subWblockClone(this.swigCPtr, OdDbIdMapping.getCPtr(ownerIdMap), OdDbObject.getCPtr(arg1));
			OdDbObject result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject((OdDbObject)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = (OdDbObject)Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = (OdDbObject)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult subExplode(OdRxObjectPtrArray entitySet)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_subExplode(this.swigCPtr, OdRxObjectPtrArray.getCPtr(entitySet));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual int proxyFlags()
		{
			int result = TD_DbPINVOKE.OdDbProxyEntity_proxyFlags(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public bool eraseAllowed()
		{
			bool result = TD_DbPINVOKE.OdDbProxyEntity_eraseAllowed(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public bool transformAllowed()
		{
			bool result = TD_DbPINVOKE.OdDbProxyEntity_transformAllowed(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public bool colorChangeAllowed()
		{
			bool result = TD_DbPINVOKE.OdDbProxyEntity_colorChangeAllowed(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public bool layerChangeAllowed()
		{
			bool result = TD_DbPINVOKE.OdDbProxyEntity_layerChangeAllowed(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public bool linetypeChangeAllowed()
		{
			bool result = TD_DbPINVOKE.OdDbProxyEntity_linetypeChangeAllowed(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public bool linetypeScaleChangeAllowed()
		{
			bool result = TD_DbPINVOKE.OdDbProxyEntity_linetypeScaleChangeAllowed(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public bool visibilityChangeAllowed()
		{
			bool result = TD_DbPINVOKE.OdDbProxyEntity_visibilityChangeAllowed(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public bool lineWeightChangeAllowed()
		{
			bool result = TD_DbPINVOKE.OdDbProxyEntity_lineWeightChangeAllowed(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public bool plotStyleNameChangeAllowed()
		{
			bool result = TD_DbPINVOKE.OdDbProxyEntity_plotStyleNameChangeAllowed(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public bool materialChangeAllowed()
		{
			bool result = TD_DbPINVOKE.OdDbProxyEntity_materialChangeAllowed(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public bool cloningAllowed()
		{
			bool result = TD_DbPINVOKE.OdDbProxyEntity_cloningAllowed(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public bool allButCloningAllowed()
		{
			bool result = TD_DbPINVOKE.OdDbProxyEntity_allButCloningAllowed(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public bool allOperationsAllowed()
		{
			bool result = TD_DbPINVOKE.OdDbProxyEntity_allOperationsAllowed(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public bool isR13FormatProxy()
		{
			bool result = TD_DbPINVOKE.OdDbProxyEntity_isR13FormatProxy(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual string originalClassName()
		{
			string result = TD_DbPINVOKE.OdDbProxyEntity_originalClassName(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual string originalDxfName()
		{
			string result = TD_DbPINVOKE.OdDbProxyEntity_originalDxfName(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual string applicationDescription()
		{
			string result = TD_DbPINVOKE.OdDbProxyEntity_applicationDescription(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void getReferences(OdTypedIdsArray objectIds)
		{
			TD_DbPINVOKE.OdDbProxyEntity_getReferences(this.swigCPtr, OdTypedIdsArray.getCPtr(objectIds));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual OdResult dwgInFields(OdDbDwgFiler pFiler)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_dwgInFields(this.swigCPtr, OdDbDwgFiler.getCPtr(pFiler));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual void dwgOutFields(OdDbDwgFiler pFiler)
		{
			TD_DbPINVOKE.OdDbProxyEntity_dwgOutFields(this.swigCPtr, OdDbDwgFiler.getCPtr(pFiler));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual OdResult dxfInFields(OdDbDxfFiler pFiler)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_dxfInFields(this.swigCPtr, OdDbDxfFiler.getCPtr(pFiler));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual void dxfOutFields(OdDbDxfFiler pFiler)
		{
			TD_DbPINVOKE.OdDbProxyEntity_dxfOutFields(this.swigCPtr, OdDbDxfFiler.getCPtr(pFiler));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual OdResult dxfIn(OdDbDxfFiler pFiler)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_dxfIn(this.swigCPtr, OdDbDxfFiler.getCPtr(pFiler));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult subTransformBy(OdGeMatrix3d xfm)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_subTransformBy(this.swigCPtr, OdGeMatrix3d.getCPtr(xfm));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult setColor(OdCmColor color, bool doSubents)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_setColor__SWIG_0(this.swigCPtr, OdCmColor.getCPtr(color), doSubents);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult setColor(OdCmColor color)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_setColor__SWIG_1(this.swigCPtr, OdCmColor.getCPtr(color));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult setColorIndex(ushort colorIndex, bool doSubents)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_setColorIndex__SWIG_0(this.swigCPtr, colorIndex, doSubents);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult setColorIndex(ushort colorIndex)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_setColorIndex__SWIG_1(this.swigCPtr, colorIndex);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult setColorId(OdDbObjectId colorId, bool doSubents)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_setColorId__SWIG_0(this.swigCPtr, OdDbObjectId.getCPtr(colorId), doSubents);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult setColorId(OdDbObjectId colorId)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_setColorId__SWIG_1(this.swigCPtr, OdDbObjectId.getCPtr(colorId));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult setPlotStyleName(string plotStyleName, bool doSubents)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_setPlotStyleName__SWIG_0(this.swigCPtr, plotStyleName, doSubents);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult setPlotStyleName(string plotStyleName)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_setPlotStyleName__SWIG_1(this.swigCPtr, plotStyleName);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult setPlotStyleName(PlotStyleNameType plotStyleNameType, OdDbObjectId newId, bool doSubents)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_setPlotStyleName__SWIG_2(this.swigCPtr, (int)plotStyleNameType, OdDbObjectId.getCPtr(newId), doSubents);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult setPlotStyleName(PlotStyleNameType plotStyleNameType, OdDbObjectId newId)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_setPlotStyleName__SWIG_3(this.swigCPtr, (int)plotStyleNameType, OdDbObjectId.getCPtr(newId));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult setPlotStyleName(PlotStyleNameType plotStyleNameType)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_setPlotStyleName__SWIG_4(this.swigCPtr, (int)plotStyleNameType);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult setLayer(string layerName, bool doSubents, bool allowHiddenLayer)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_setLayer__SWIG_0(this.swigCPtr, layerName, doSubents, allowHiddenLayer);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult setLayer(string layerName, bool doSubents)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_setLayer__SWIG_1(this.swigCPtr, layerName, doSubents);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult setLayer(string layerName)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_setLayer__SWIG_2(this.swigCPtr, layerName);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult setLayer(OdDbObjectId layerId, bool doSubents, bool allowHiddenLayer)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_setLayer__SWIG_3(this.swigCPtr, OdDbObjectId.getCPtr(layerId), doSubents, allowHiddenLayer);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult setLayer(OdDbObjectId layerId, bool doSubents)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_setLayer__SWIG_4(this.swigCPtr, OdDbObjectId.getCPtr(layerId), doSubents);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult setLayer(OdDbObjectId layerId)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_setLayer__SWIG_5(this.swigCPtr, OdDbObjectId.getCPtr(layerId));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult setLinetype(string linetypeName, bool doSubents)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_setLinetype__SWIG_0(this.swigCPtr, linetypeName, doSubents);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult setLinetype(string linetypeName)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_setLinetype__SWIG_1(this.swigCPtr, linetypeName);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult setLinetype(OdDbObjectId linetypeID, bool doSubents)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_setLinetype__SWIG_2(this.swigCPtr, OdDbObjectId.getCPtr(linetypeID), doSubents);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult setLinetype(OdDbObjectId linetypeID)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_setLinetype__SWIG_3(this.swigCPtr, OdDbObjectId.getCPtr(linetypeID));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult setLinetypeScale(double linetypeScale, bool doSubents)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_setLinetypeScale__SWIG_0(this.swigCPtr, linetypeScale, doSubents);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult setLinetypeScale(double linetypeScale)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_setLinetypeScale__SWIG_1(this.swigCPtr, linetypeScale);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult subSetVisibility(Visibility visibility, bool doSubents)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_subSetVisibility__SWIG_0(this.swigCPtr, (int)visibility, doSubents);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult subSetVisibility(Visibility visibility)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_subSetVisibility__SWIG_1(this.swigCPtr, (int)visibility);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult setLineWeight(LineWeight lineWeight, bool doSubents)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_setLineWeight__SWIG_0(this.swigCPtr, (int)lineWeight, doSubents);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult setLineWeight(LineWeight lineWeight)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_setLineWeight__SWIG_1(this.swigCPtr, (int)lineWeight);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult setMaterial(string materialName, bool doSubents)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_setMaterial__SWIG_0(this.swigCPtr, materialName, doSubents);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult setMaterial(string materialName)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_setMaterial__SWIG_1(this.swigCPtr, materialName);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult setMaterial(OdDbObjectId materialID, bool doSubents)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_setMaterial__SWIG_2(this.swigCPtr, OdDbObjectId.getCPtr(materialID), doSubents);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult setMaterial(OdDbObjectId materialID)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_setMaterial__SWIG_3(this.swigCPtr, OdDbObjectId.getCPtr(materialID));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult subErase(bool erasing)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbProxyEntity_subErase(this.swigCPtr, erasing);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public const int kNoOperation = 0;

		public const int kEraseAllowed = 1;

		public const int kTransformAllowed = 2;

		public const int kColorChangeAllowed = 4;

		public const int kLayerChangeAllowed = 8;

		public const int kLinetypeChangeAllowed = 16;

		public const int kLinetypeScaleChangeAllowed = 32;

		public const int kVisibilityChangeAllowed = 64;

		public const int kCloningAllowed = 128;

		public const int kLineWeightChangeAllowed = 256;

		public const int kPlotStyleNameChangeAllowed = 512;

		public const int kDisableProxyWarning = 1024;

		public const int kMaterialChangeAllowed = 2048;

		public const int kAllButCloningAllowed = 2943;

		public const int kAllAllowedBits = 3071;

		private object locker = new object();

		private HandleRef swigCPtr;

		public enum GraphicsMetafileType
		{
			kNoMetafile,
			kBoundingBox,
			kFullGraphics
		}
	}
}
